<?php
/**
 * 标签名称，比如这个使用!{res }这样调用
 * @var string
 */
$self_tag_name = 'res';

/**
 * 获取资源路径，比如!{res file='css/site.css'}将返回：http://cache.duoec.com/sites/main/test.duoec.com/template/css/site.css
 * @param array $params 参数
 * @param Smarty $smarty
 */
function smarty_function_res($params, &$smarty){
	
	$path = get_file_from_param($params);
	
	//如果是图片，则有可能有此选项缩略
	if(isset($params['thumb'])){
		$thumb = trim($params['thumb']);
		$path = get_thumb_path($path, $thumb);
//		$path = preg_replace('%(.*)/([^/]+.(jpg|jpeg|gif))%i', '$1/' . $thumb . '/$2', $path);
	}
	
	if(starts_with($path,'http')){
		return $path;
	}
	if(starts_with('/', $path)){
		return CACHE_URL . $path;
	}else{
		return CACHE_URL . '/' . $path;
	}
}

function get_file_from_param(&$params){
	if(isset($params['file'])){
		$file = trim($params['file']);
		if(preg_match('%.*\d+x\d+/[^.|/]*\.(jpg|gif|png|bmp)%i', $file)){
			//如果是缩略图路径，则尝试找原始图
			$thumb = preg_replace('%.*?(\d+x\d+)/[^.|/]*\.(jpg|gif|png|bmp)%i', '$1', $file);
			$params['thumb'] = $thumb;
			$file = preg_replace('%^(.*?/?)\d+x\d+/(.*)$%', '$1$2', $file);
			return get_res_img_file_path($file);
		}else{
			//如果不是图片
			if(is_file(ROOT_PATH . '/' . $file)){
				return CACHE_URL . '/' . $file;
			}
			//尝试从公共目录中查找
			if(is_file(ROOT_PATH . '/template/' . $file)){
				return CACHE_URL . '/template/' . $file;
			}
			//尝试从用户目录中找
			if(is_file(ROOT_PATH . '/sites/main/' . MAIN_DOMAIN . '/template/' . $file)){
				return CACHE_URL . '/sites/main/' . MAIN_DOMAIN . '/template/' . $file;
			}
			return CACHE_URL . '/' . $file;
		}
		
	}else if(isset($params['lib'])){
		//此处是为了方便更换版本，作的统一处理
		$lib = trim($params['lib']);
		$theme = 'default';
		if(isset($params['theme'])){
			$theme = trim($params['theme']);
		}else{
			if(defined('THEME')){
				$theme = THEME;
			}
		}
		switch ($lib){
			case  'jquery.js':
				return CACHE_URL . '/template/js/jquery-1.7.1.min.js';
			case 'jquery_ui.js':
				return CACHE_URL . '/template/js/jquery_plus/ui/jquery-ui-1.8.17.custom.min.js';
			case 'jquery_ui.css':
				return CACHE_URL . '/template/js/jquery_plus/ui/css/' . $theme . '/jquery-ui-1.8.17.custom.css';
		}
		return $lib;
	}
	return '';
}

function get_res_img_file_path($file){
	//用户私有目录或者共公目录中存在
	if(is_file(ROOT_PATH . '/sites/main/' . MAIN_DOMAIN . '/template/' . $file) || is_file(ROOT_PATH . '/template/' . $file)){
		return CACHE_URL . '/template/' . $file;
	}
	
	//如果在用户目录中不存在 ，则尝试找系统中的
	if(is_file(ROOT_PATH . '/protected/web/' . WEB_MODULE . '/template/' . $file)){
		return CACHE_URL . '/protected/web/' . WEB_MODULE . '/template/' . $file;
	}

	if(preg_match('%.*\d+x\d+/[^.|/]*\.(jpg|gif|png|bmp)%i', $file)){
		//如果是缩略图路径，则尝试找原始图
		$src = preg_replace('%^(.*?/?)\d+x\d+/(.*)$%', '$1$2', $file);
		return get_res_img_file_path($src); 
	}
	return $file;
}